package juc;

import java.util.concurrent.locks.LockSupport;

/*
线程交替输出问题
两个线程交替输出
 *                 第一个线程：1 2 3 4 5 6 7
 *                 第二个线程： A B C D E F G
 *        输出结果：1A2B3C4D5E6F7G
 */
public class Test04 {

    // 定义为static
    static Thread t1 = null;
    static Thread t2 = null;

    public static void main(String[] args) {
        char[] nums = "1234567".toCharArray();
        char[] chars = "ABCDEFG".toCharArray();

        t1 = new Thread(()->{

            for(char temp: nums){
                System.out.println(temp);
                LockSupport.unpark(t2); // 叫醒t2
                LockSupport.park(); // 阻塞当前线程t1
            }
        },"t1");

        t2 = new Thread(()->{

            for(char temp: chars){
                LockSupport.park(); // 阻塞当前线程t2
                System.out.println(temp);
                LockSupport.unpark(t1); // 叫醒t1
            }
        },"t2");

        t1.start();
        t2.start();
    }
}
